package sicnu.cs.aps.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import sicnu.cs.aps.domain.dto.ActivityInfoDto;
import sicnu.cs.aps.domain.dto.ActivityTotalMember;
import sicnu.cs.aps.domain.entity.Activity;
import sicnu.cs.aps.domain.entity.ActivityRestriction;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author lucker
 * @date 2022/5/26 15:35
 */

@Mapper
public interface ActivityMapper extends BaseMapper<Activity> {
    Long addActivity(Activity activity);
//
//    /**
//     * 查询活动
//     * @param keyword 活动关键字
//     * @param activityIdList 符合学院条件限制的活动id列表
//     * @return 活动列表
//     */
//    List<Activity> getActivityList(@Param("keyword") String keyword,@Param("activityIdList") List<Long> activityIdList);

    /**
     * 查询活动
     *
     * @param keyword   活动关键字
     * @param collegeId 学院ID
     * @return
     */
    List<Activity> selectActivityList(@Param("keyword") String keyword, @Param("collegeId") Long collegeId);

    /**
     * 查看已发布或历史活动
     *
     * @param type 1-已发布活动；2-未发布的活动（未到报名时间）;3-历史活动；其他：全部活动
     * @return
     */
    List<ActivityInfoDto> selectActivity(@Param("type") Integer type);

    /**
     * 获取各个活动的参加人数
     *
     * @param activityIdList
     * @return
     */
    List<ActivityTotalMember> countTotalMemberByActivityIdList(@Param("activityIdList") List<Long> activityIdList);

    /**
     * 通过teamIds查询所有活动
     *
     * @param teamIds 小队列表
     * @return 活动列表
     */
    List<Activity> listActivityByTeamIds(@Param("teamIds") List<Long> teamIds);
}
